package net.dgg.rz.common.utils;

import java.math.BigDecimal;
import java.text.DecimalFormat;

/**
 * BigDecimal格式化
 * @author Administrator
 *
 */
public class DecimalFormatUtil {

	/**
	 * 金额格式化,0为空
	 * @param bd
	 * @return
	 */
	public static String toString(BigDecimal bd) {
		return toString(bd, "");
	}
	
	/**
	 * 金额格式化
	 * @param bd
	 * @return
	 */
	public static String toString(BigDecimal bd, String defaultString) {
		if(bd == null) {
			return defaultString;
		}
		//传递参数为0时返回0.00
		if(bd.doubleValue() == 0){
			return "0.00";
		}
		DecimalFormat df = new DecimalFormat("#,##0.00");
		return df.format(bd);
	}

	/**
	 * 金额格式化,保留指定小数位数
	 * @param bd
	 * @param point
	 * @param defaultString
	 * @return
	 */
	public static String toStringWithPoint(BigDecimal bd,int point, String defaultString) {
		if(bd == null || bd.doubleValue() == 0) {
			return defaultString;
		}
		String pattern = "#,##0";
		if(point>0){
			pattern +=".";
		}
		for(int i = 0;i<point;i++){
			pattern += "0";
		}
		DecimalFormat df = new DecimalFormat(pattern);
		return df.format(bd);
	}
	/**
	 * 数量格式化,保留指定小数位数
	 * @param bd
	 * @param point
	 * @param defaultString
	 * @return
	 */
	public static String toStringWithPoint2(BigDecimal bd,int point, String defaultString) {
		if(bd == null || bd.doubleValue() == 0) {
			return defaultString;
		}
		String pattern = "###0";
		if(point>0){
			pattern +=".";
		}
		for(int i = 0;i<point;i++){
			pattern += "0";
		}
		DecimalFormat df = new DecimalFormat(pattern);
		return df.format(bd);
	}
	/**
	 * 数量格式化
	 * @param bd
	 * @return
	 */
	public static String toString2(BigDecimal bd, String defaultString) {
		if(bd == null || bd.doubleValue() == 0) {
			return defaultString;
		}
		DecimalFormat df = new DecimalFormat("###0.00");
		return df.format(bd);
	}

	/**
	 * 金额格式化
	 * @param
	 * @return
	 */
	public static String toString(Double d, String defaultString) {
		if(d == null) {
			return defaultString;
		}
		return toString(new BigDecimal(d), defaultString);
	}

	/**
	 * 金额格式化
	 * @param
	 * @return
	 */
	public static String toString2(Double d, String defaultString) {
		if(d == null) {
			return defaultString;
		}
		return toString2(new BigDecimal(d), defaultString);
	}
}
